AWSマネジメントコンソールへのアクセスを特定デバイスに制限する方法を考えてみた
はじめに
AWSマネジメントコンソールへログインするユーザーに対して、管理者側で特定のデバイスからのアクセスのみに制限することができないか調査しました。
マネジメントコンソールへのログインは、以下のパターンがあります。
- IAMユーザー
- AWS IAM Identity Center(独自IDストア or 外部IDプロバイダー)
- シングルサインオン(IAM SAML)
今回は、例として、特定のPCにログイン制限することを目的に、それぞれのパターンで確認します。
結論
結論として、IAM Identity Center(外部IDプロバイダー)やシングルサインオン(IAM SAML)を利用し、外部IDプロバイダーのログイン段階で特定のデバイスに制限をかけることで、間接的にAWSマネジメントコンソールへのアクセス制限が実現可能です。
ログイン方式 | 制限可否 |
---|---|
IAMユーザー | ✕ |
AWS IAM Identity Center(独自IDストア) | ✕ |
AWS IAM Identity Center(外部IDプロバイダー) | ◯ |
シングルサインオン(IAM SAML) | ◯ |
対してIAMユーザーや独自IDストアのIAM Identity Centerでは、特定のデバイスに制限することはできません。
それぞれ解説します。
IAMユーザー
IAMユーザーのログインで必要な情報は、以下です。
- ユーザー名、パスワード(オプション:多要素認証(MFA))
特定のデバイスにログインを制限する目的で、MFAを活用できるか確認してみます。
IAMユーザーが利用可能なMFAタイプには、以下の3つの選択肢があります
- パスキーまたはセキュリティキー
- 仮想認証アプリケーション
- ハードウェアTOTPトークン
各MFAタイプと、デバイス制限の可否は、以下の表にまとめました。
認証方式 | デバイス制限の可能性 | 制限可否 | 例 |
---|---|---|---|
パスキー | 一部のパスキーを除き同期機能があるため、特定のPCに限定できない | △ | パスキープロバイダー:iCloud キーチェーン、Google パスワードマネージャー、1Password 認証:生体認証(指紋や顔認証)またはデバイスのPIN |
セキュリティキー(Device-bound passkeys) | 物理的なデバイスの所持が必要だが、特定のPCに限定できない | × | YubiKey |
仮想認証アプリケーション | 複数デバイスにインストール可能であり、特定のPCに限定できない | × | Google Authenticator、Microsoft Authenticator |
ハードウェアTOTPトークン | 物理的なトークンを所持しているが、特定のPCに限定できない | × | Gemaltoのデバイス |
パスキーは、生体認証(指紋や顔認証)またはデバイスのPINを使用して認証を行う方式です。パスキーの作成は、以下のようなパスキープロバイダーやデバイスで可能です
- iCloud キーチェーン
- Chromeプロフィール
- スマートフォン
- タブレット
パスキーの作成方法によっては、複数のデバイス間で同期が行われる場合があります。また、特定のパスキーの作成方法を強制することはできません。
-
iCloudキーチェーンを使用した場合:
ユーザーが承認したすべてのAppleデバイス(iPhone、iPad、Mac等)で、Webサイトやアプリのパスキーなどのアカウント情報が自動的に同期され、最新の状態に保たれます。 -
Chromeプロフィールの場合:
設定したデバイスに制限することが可能です。ただし、MFAを設定するIAMユーザーに対して、Chromeプロフィールでのパスキーの作成に限定させることはできません。
IAMユーザーでのログインを特定のデバイスに完全に制限することは、現在のAWSの標準機能では実現が困難です。
パスキーやその他のMFA方式を使用しても、完全なデバイス制限は保証できません。
AWS IAM Identity Center
AWS IAM Identity Centerにおけるユーザー管理(ID管理)には、主に2つのパターンがあります
- 独自のIDストアでのユーザー管理
- 外部IDプロバイダーとの連携
以下、これらの各パターンについて、デバイス制限可能か確認します。
独自の ID ストアでユーザー管理
AWS IAM Identity Center内でユーザーを直接作成し管理する方法では、IAMユーザーと同様にMFAを使用できます。
この場合、利用可能なMFAタイプには以下のオプションがあります
- 組み込みの認証アプリ
- セキュリティキー
- 仮想認証アプリ
- ワンタイムパスワード (OTP) ベースのサードパーティー認証アプリを含む
- RADIUS MFA
- AWS Managed Microsoft ADを介して利用
- AWS Managed Microsoft ADを介して利用
RADIUS MFA を利用する場合、特定のデバイスのみに対してユーザーのサインインを許可することはできません。
他の3点は、IAMユーザーと同じくデバイス制限を実現できません。
結論として、AWS IAM Identity Centerの独自IDストアを使用する場合、いずれのMFAタイプを選択しても、特定のデバイスへのアクセス制限を完全に実現することは難しいです。
外部 ID プロバイダーとの連携
AWS IAM Identity Centerと外部IDプロバイダーを連携させる方法では、ユーザー管理をAWS内ではなく、OktaやMicrosoft Entra IDなどの外部IDプロバイダー側で行います。
特定のデバイスに対するアクセス制限機能を提供する外部IDプロバイダーを利用することで、そのログイン制御機能を活用し、AWSマネジメントコンソールへのアクセスを間接的に制限できます。
これは、ユーザーが外部IDプロバイダーで認証を受けた後にのみAWSマネジメントコンソールにアクセスできるためです。
そのため、外部IDプロバイダーで特定のデバイスからのアクセスのみを許可するよう設定すれば、結果として、AWSマネジメントコンソールへのアクセスも実質的に同じデバイスに限定されます。
例えば、Microsoft Entra IDの場合、AWS IAM Identity Center の外部 IdP として連携し、Entra ID 側の条件付きアクセス機能を利用することで「特定のデバイスのみサインインを許可する」という制御が可能です。
この連携方法の詳細については、以下の資料をご参照ください。
強力な認証と厳格なガバナンスのための強力な "条件付きアクセス" 機能。 Microsoft Entra ID では、条件付きアクセス ポリシーとリスク ベースの評価を使って、AWS 管理コンソールと AWS リソースへのユーザー アクセスを認証および認可します。
また、Entra の条件付きアクセスで利用可能なフィルターのリストについては、以下のドキュメントをご確認ください。
AWS CLI
ちなみに、IAM Identity CenterでAWS CLIを使用する場合、独自IDストアや外部IDプロバイダーのどちらのパターンであってもデバイス制限は難しいです。
IAM Identity CenterでAWS CLIコマンドを実行するための一時的な認証情報を取得する方法には、以下の2つがあります。
- (推奨) SSOトークンプロバイダーの設定(= AWS IAM Identity Center credentials)
- 外部IDプロバイダーの認証が必要なため、実質的に特定のデバイスに制限可能
- 更新不可のレガシー設定(Short-term credentials)
- IAM Identity CenterのAWSアクセスポータルログイン後に利用可能なため、特定のデバイスに制限可能
- ただし、一時認証情報を取得後、別のデバイスに一時認証情報をコピーされると制限できない
更新不可のレガシー設定(Short-term credentials)を利用すると、取得した認証情報が別デバイスでも使用できてしまうため、AWS CLIの使用を特定のデバイスに完全に制限することはできません。
更新不可のレガシー設定の利用を制限させる方法もありません。
シングルサインオン(IAM SAML)
シングルサインオン(IAM SAML)を使用する場合も、外部IDプロバイダーとの連携が可能です。
この連携により、AWS IAM Identity Centerと同様に、外部IDプロバイダーのログイン制御機能を活用して、特定のデバイスからのみログインを許可するように設定することで、結果的にAWSマネジメントコンソールへのアクセスも実質的に同じデバイスに限定されます。
最後に
AWSの標準機能だけでは、マネジメントコンソールへのアクセスを特定のデバイスに完全に制限することは困難です。
しかし、外部IDプロバイダー(例:Microsoft Entra ID、OneLoginなど)を利用することで、そのIDプロバイダーのログイン段階で特定のデバイスに制限をかけることが可能です。
参考